package com.zhixing.user.domain.dto;

import com.zhixing.user.domain.enums.Sex;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import java.time.LocalDate;

@Data
public class AuthInfoDTO {

    /**
     * 姓名
     * @example 张三
     */
    @NotBlank(message = "姓名不能为空")
    private String name;

    /**
     * 性别：0-男，1-女
     * @example 0
     */
    private Sex sex;

    /**
     * 出生日期
     * @example 1990-01-01
     */
    private LocalDate birthDate;

    /**
     * 身份证号
     * @example 330103199001011234
     */
    @NotBlank(message = "身份证号不能为空")
    private String idNumber;

    /**
     * 地址
     * @example 北京市石景山区高新技术园腾讯大楼
     */
    private String address;

    /**
     * 身份证过期日期
     * @example 2031-01-01
     */
    @NotNull(message = "身份证过期日期不能为空")
    private LocalDate idCardExpireDate;

    /**
     * 身份证正面图片
     * @example http://...
     */
    @NotBlank(message = "身份证正面图片不能为空")
    private String idCardFrontUrl;

    /**
     * 身份证反面图片
     * @example http://...
     */
    @NotBlank(message = "身份证反面图片不能为空")
    private String idCardBackUrl;

    /**
     * 准驾车型
     * @example C1
     */
    @NotBlank(message = "准驾车型不能为空")
    private String driverLicenseClass;

    /**
     * 驾驶证初次领证日期
     * @example 2019-01-01
     */
    @NotNull(message = "驾驶证初次领证日期不能为空")
    private LocalDate driverLicenseIssueDate;

    /**
     * 驾驶证过期日期
     * @example 2019-01-01
     */
    @NotNull(message = "驾驶证过期日期不能为空")
    private LocalDate driverLicenseExpireDate;

    /**
     * 驾驶证图片
     * @example http://...
     */
    @NotBlank(message = "驾驶证图片不能为空")
    private String driverLicenseUrl;

    /**
     * 汽车品牌
     * @example 小米
     */
    @NotBlank(message = "汽车品牌不能为空")
    private String carBrand;

    /**
     * 汽车颜色
     * @example 白色
     */
    @NotBlank(message = "汽车颜色不能为空")
    private String carColor;

    /**
     * 车牌号
     * @example 京A12345
     */
    @NotEmpty(message = "车牌号不能为空")
    @Pattern(regexp = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z][A-Z][A-Z0-9]{4}[A-Z0-9挂学警港澳]$", message = "车牌号格式不正确")
    private String plateNumber;
}
